/**
 * Copyright (C) 2012 The SkyTvOS Project
 * <p/>
 * Version     Date           Author
 * ─────────────────────────────────────
 * 2013-10-16         wei li
 */

package com.skyworth.badsdk;

import java.util.ArrayList;
import java.util.List;

import com.skyworth.framework.skysdk.logger.Logger;
import com.skyworth.framework.skysdk.util.SkyDataDecomposer;

/**
 * <p>Description:</p>
 * <p>获取apps_config.xml内的值</p>
 *
 * @author wei li
 * @version V1.0.0
 * @ClassName SkyAppsProperties
 * @date 2013-10-29
 */
public class SkyAppsClassifyProperties extends BaseProperties {
    private static List<String> mPropertyKeys = new ArrayList<String>();
    private static String generalConfigs = loadConfig("app_classify.xml", "package", "value", mPropertyKeys);
    private static SkyDataDecomposer decomposer = new SkyDataDecomposer(generalConfigs);

    /**
     * 概述：根据属性Key获取属性值<br/>
     * 适用条件：<br/>
     * 执行流程：<br/>
     * 使用方法：<br/>
     * 注意事项：<br/>
     *
     * @param key
     * @return String
     * @date 2013-10-21
     */
    static public String getProperty(String key) {
        if (decomposer == null) {
            Logger.i("decomposer == null");
            return null;
        }
        return decomposer.getStringValue(key);
    }

    /**
     * 概述：获取Generalconfig的整型值<br/>
     * 适用条件：适用于整型属性值<br/>
     * 执行流程：<br/>
     * 使用方法：<br/>
     * 注意事项：此项属性必须为整型，否则返回0<br/>
     *
     * @param key
     * @return int
     * @date 2013-10-29
     */
    static public int getIntProperty(String key) {
        String value = getProperty(key);
        if (value == null) {
            return 0;
        }
        return Integer.parseInt(value);
    }

    /**
     * 概述：获取Generalconfig的布尔值<br/>
     * 适用条件：适用于布尔属性值<br/>
     * 执行流程：<br/>
     * 使用方法：<br/>
     * 注意事项：此项属性必须为布尔值，否则返回false<br/>
     *
     * @param key
     * @return boolean
     * @date 2013-10-29
     */
    static public boolean getBoolProperty(String key) {
        String value = getProperty(key);
        return Boolean.parseBoolean(value);
    }

    /**
     * 概述：获取Generalconfig属性列表<br/>
     * 适用条件：适用于任何条件下<br/>
     * 执行流程：<br/>
     * 使用方法：<br/>
     * 注意事项：<br/>
     *
     * @return List<String>
     * @date 2013-10-29
     */
    public static List<String> getPropertyList() {
        return mPropertyKeys;
    }
}
